The World Wide Web is most commonly associated with the access and display of content (e.g., text, graphics) in Web browsers. However, the emergence of what are known as “Web services” has been used to extend the World Wide Web's usefulness by providing access to computational procedures over the Web. Web services use some of the same open and extensible protocols and formats that have made Web browsers so useful, yet allow information to be accessed by programs and applications besides browsers. As a result, Web services can be powerful tools for providing distributed data access in many application domains.
Web services are network-based (particularly Internet-based) applications that perform a specific task and conform to a specific technical format. Web services may be implemented using a stack of emerging standards that describe a service-oriented application architecture, collectively providing a distributed computing paradigm having a particular focus on delivering services across the Internet.
Generally, Web services are implemented as self-contained modular applications that can be published in a ready-to-use format, located, and invoked across networks. When a Web service is deployed, other applications and Web services can locate and invoke the deployed service. They can perform a variety of functions, ranging from simple requests to complicated business processes.
Web services are typically configured to use standard Web protocols such as Hypertext Transfer Protocol (HTTP) and formats such as the Extensible Markup Language (XML) but may use other protocols and formats as well. Web services are distinguished through the use of SOAP (the first version was an acronym for Simplified Object Access Protocol) and are commonly associated with a Web Services Description Language (WSDL) description. HTTP is an application-level protocol commonly used to transport data on the Web. XML is a mechanism to define markup languages. Some markup languages (e.g., HTML) are used mainly to describe how a document is to be formatted for display. Others are defined to describe application data. SOAP is a markup language for message encapsulation and is typically used to transmit messages that invoke remote procedure calls, return the results from such invocation, or transmit documents.
The availability of Web services makes the Web an even more powerful communications medium. Web services enable a service-oriented architecture to be created using existing Web technologies. Any Web-services-aware program can invoke other services, enabling applications to be dynamically composed from reusable components. Hence, Web services can be a part of a program carrying out any kind of computation, yet can be accessed and run anywhere due to the ubiquity of the Internet and its associated protocols. Further, the Web service standards can be adapted handle almost any type of data, due to the use of extensible languages such as XML.
The flexibility and extensibility of typical Web services such as SOAP come at a cost, however. The text based, tagged format of XML is quite verbose. Such XML text representations are preferred for Web services because they enable interoperability and are easy to read and debug. However, text representations are not the most efficient form in which to transmit data, and therefore require more bandwidth to transmit than is theoretically necessary. The tags and other required fields in XML increase the data overhead when using these types of Web services, especially on small, simple transactions.
Although the Web network infrastructure is increasingly adding bandwidth capacity, many users are forced to rely on limited bandwidth connections. This is especially true of mobile device users. The physics of wireless data transfer makes it much more difficult to provide high bandwidth at a reasonable cost. As a result, the bandwidth available to mobile devices is not necessarily catching up to the processing power provided in the devices themselves. As a result of bandwidth limitations, users of mobile devices may not be able to efficiently use Web services utilizing protocols such as SOAP without consideration of these factors.